package com.example.hfweather.storage

import android.content.Context
import android.content.SharedPreferences
import com.google.gson.Gson

class TokenPreferences  private constructor(context: Context)  {

    companion object {
        @Volatile private var instance: TokenPreferences? = null
        fun getInstance(context: Context): TokenPreferences {
            // 第一次检查：如果实例已存在直接同步返回
            return instance ?: synchronized(this) {
                // 第二次检查：确保只有一个实例被创建
                instance ?: TokenPreferences(context.applicationContext).also {
                    instance = it
                }
            }
        }
    }

    private val prefs: SharedPreferences by lazy {
        context.getSharedPreferences("token_prefs", Context.MODE_PRIVATE)
    }

    private val gson = Gson()

    fun saveToken(token: String) {
        prefs.edit().apply {
            putString("token", token)
            apply() // 异步提交
        }
    }

    fun getToken(): String? {
        return prefs.getString("token", null)
    }

    fun clearToken() {
        prefs.edit().apply {
            remove("token")
            apply()
        }
    }
}